import Ax from 'service/axios'
import qs from 'qs'

export default { 

  // 获取首页博客列表
  fetchBlogList(currentPage, pageSize) {
    return Ax.get('/home/findBlogList', {
      params: {
        currentPage,
        pageSize
      }
    })
  },

  // 查询首页分类列表博客最多前五条
  fetchTopType() {
    return Ax.get('/home/findTypeList')
  },

  // 查询首页标签列表博客最多前十二条
  fetchTopTag() {
    return Ax.get('/home/findTagList')
  },

  // 查询首页最新推荐博客列表前五条
  fetchRecommendList() {
    return Ax.get('/home/findRecommendList')
  },

  // 查询博客搜索结果
  fetchSearchBlogList(currentPage, pageSize, search) {
    return Ax.get('/home/findSearchBlogList', {
      params: {
        currentPage,
        pageSize,
        search
      }
    })
  },

  // 查询轮播图
  fetchCarouselList() {
    return Ax.get('/home/findCarouselList')
  },

  // 查询博客、分类、标签总数统计
  fetchCountList() {
    return Ax.get('/home/findCountList')
  },

  // 查询所有博客总字数
  fetchAllWordCount() {
    return Ax.get('/home/findAllWordCount')
  },

  // 获取管理员信息
  fetchAdmin() {
    return Ax.get('/user/findAdmin')
  },

  // 获取用户信息
  fetchUserMsg() {
    return Ax.get('/user/findUserMsg')
  },

  // 获取分类列表
  fetchTypeList() {
    return Ax.get('/type/findTypeList')
  },

  // 通过分类Id查询博客
  fetchBlogByTypeId(currentPage, pageSize, typeId) {
    return Ax.get('/type/findBlogByTypeId', {
      params: {
        currentPage,
        pageSize,
        typeId
      }
    })
  },

  // 获取标签列表
  fetchTagList(currentPage, pageSize) {
    return Ax.get('/tag/findTagList', {
      params: {
        currentPage,
        pageSize
      }
    })
  },

  // 通过标签Id查询博客
  fetchBlogByTagId(currentPage, pageSize, tagId) {
    return Ax.get('/tag/findBlogByTagId', {
      params: {
        currentPage,
        pageSize,
        tagId
      }
    })
  },

  // 获取归档页面博客时间分组映射
  fetchArchivesBlogList() {
    return Ax.get('/archives/findArchivesBlogList')
  },

  // 查询所有已允许的友情链接
  fetchAllowedLinkList() {
    return Ax.get('/link/findAllowedLinkList')
  },

  // 上传友情链接
  saveLink(link) {
    return Ax.put('/link/saveLink', {
      ...link
    })
  },

  // 根据博客Id查询博客详情信息
  fetchBlogDetail(id) {
    return Ax.get('/detail/findBlogDetail', {
      params: {
        id
      }
    })
  },

  // 根据博客id更新博客评论数
  updateBlogComments(id, comments) {
    return Ax.put('/detail/updateBlogComments', qs.stringify({id, comments}))
  },

  // 获取bangumi 每日放送
  bangumiCalendar() {
    return Ax.get('/bangumi/calendar')
  },

  // 获取bangumi 个人追番 (待优化 输入个人信息, 参数)
  bangumiWatching() {
    return Ax.get('/bangumi/watching')
  },


//-----------------------------------------后台管理---------------------------------------------

  // 登录验证
  profileLogin(username, password) {
    return Ax.post('/profile/login', qs.stringify({username, password}))
  },

  // 根据请求头中的token获取用户信息
  fetchUserByToken() {
    return Ax.get('/profile/findUserByToken')
  },

  // 获取博客列表  
  fetchProBlogList(blogManageQueryVo) {
    return Ax.post('/profile/findBlogList', {
      ...blogManageQueryVo // ... ES6扩展运算符
    })
  },

  // 根据id查询博客
  fetchBlogById(id) {
    return Ax.get('/profile/findBlogById', {
      params: {
        id
      }
    })
  },

  // 保存博客
  saveBlog(blog) {
    return Ax.put('/profile/saveBlog', {
      ...blog
    })
  },

  // 更新指定博客
  updateBlog(blog) {
    return Ax.put('/profile/updateBlog', {
      ...blog
    })
  },

  // 删除指定博客
  deleteBlog(id) {
    return Ax.put('/profile/deleteBlog', qs.stringify({id}))
  },

  // 根据id查询分类
  fetchTypeById(id) {
    return Ax.get('/profile/findTypeById', {
      params: {
        id
      }
    })
  },

  // 保存分类
  saveType(type) {
    return Ax.put('/profile/saveType', {
      ...type
    })
  },

  // 更新分类
  updateType(type) {
    return Ax.put('/profile/updateType', {
      ...type
    })
  },

  // 删除分类 
  deleteType(id) {
    return Ax.delete('/profile/deleteType', {
      params: {
        id
      }
    })
  },

  // 根据id查找标签
  fetchTagById(id) {
    return Ax.get('/profile/findTagById', {
      params: {
        id
      }
    })
  },

    // 保存标签
  saveTag(tag) {
    return Ax.put('/profile/saveTag', {
      ...tag
    })
  },

  // 更新分类
  updateTag(tag) {
    return Ax.put('/profile/updateTag', {
      ...tag
    })
  },

  // 删除分类 
  deleteTag(id) {
    return Ax.delete('/profile/deleteTag', {
      params: {
        id
      }
    })
  },

  // 根据id查询轮播图
  fetchCarouselById(id) {
    return Ax.get('/profile/findCarouselById', {
      params: {
        id
      }
    })
  },

  // 保存轮播图
  saveCarousel(carousel) {
    return Ax.put('/profile/saveCarousel', {
      ...carousel
    })
  },

  // 更新轮播图
  updateCarousel(carousel) {
    return Ax.put('/profile/updateCarousel', {
      ...carousel
    })
  },

  // 删除轮播图
  deleteCarousel(id) {
    return Ax.put('/profile/deleteCarousel', qs.stringify({id}))
  },

  // 查询所有友链
  fetchLinkList() {
    return Ax.get('/profile/findLinkList')
  },

  // 更新友链状态
  updateLink(link) {
    return Ax.put('/profile/updateLink', {
      ...link
    })
  },

  // 删除友链
  deleteLink(id) {
    return Ax.delete('/profile/deleteLink', {
      params: {
        id
      }
    })
  }
}